Some computer systems have a firmware basic input/output system (“BIOS”) containing basic routines which are accessed to boot the computer as well as to initialize and interface hardware with operating system software. Occasionally, the BIOS may need to be updated to reflect changes in the hardware configuration of the computer system or to add new features. To facilitate BIOS updates, the BIOS of many modern computer systems is stored in a type of re-programmable memory, called “flash memory.” In large-scale computing or server platforms, the BIOS may be stored on multiple flash memory chips, also called “flash” devices or parts. In computer systems utilizing flash memory to store the BIOS, a software update utility may be used to update the contents of the flash memory by erasing and re-programming each flash device.
Large-scale computing or server platforms utilize multiple central processing units (“CPUs”) or processors. In one multi-processor architecture, each group of processors communicates with a hardware interface known as a “node” which provides access to flash memory devices associated with that particular node. Processors in a particular node, however, do not have access to the flash memory devices associated with other nodes. As a result, the update of flash memory devices in these large-scale computing or server platforms is made more difficult by requiring a user to manually launch multiple copies of an update utility on each node.
It is with respect to these considerations and others that the present invention has been made.